---
title: Learning resources
description: Explore a curated list of resources to learn about Expo and React Native.
---

import { A } from '~/ui/components/Text';

Now that the doing is done, let's fill in the gaps on the concepts that we applied.

## JavaScript features such as async/await, import, and others

Read about [Modern JavaScript on React Native Express](https://www.reactnative.express/javascript/features).

## React

We used React components and APIs. Having a solid understanding of React is essential to using Expo to build your app. We recommend reading the [Main Concepts section](https://react.dev/learn) and the [Hooks section](https://react.dev/reference/react) of the React documentation.

## React Native

While developing the tutorial app, we used React Native extensively. You can start from the [React Native basics guide](https://reactnative.dev/docs/getting-started) to learn more. Also, check out the following docs:

- [View API reference](https://reactnative.dev/docs/view)
- [Text API reference](https://reactnative.dev/docs/text)
- [Platform specific code](https://reactnative.dev/docs/platform-specific-code)
- [Presenting data in a list](https://reactnative.dev/docs/using-a-listview)

We used Flexbox to layout our components. Check out the following recommendations to learn more about it:

- [Height and Width](https://reactnative.dev/docs/height-and-width)
- [Layout with Flexbox](https://reactnative.dev/docs/flexbox)

## Configure your app with app.json

You can learn more about customizing your [app icon](/develop/user-interface/splash-screen-and-app-icon/) and [splash screen](/develop/user-interface/splash-screen-and-app-icon/) in our guides. Also, look through the [app config reference](/workflow/configuration) for properties you can configure in the **app.json** file.

## Build your project into an app

Once we've built a project we're ready to share with users, we can build it into an app. Read more about [distributing your app to stores](/deploy/build-project/) and [deploying websites](/distribution/publishing-websites).

### Navigation

We had one screen in the tutorial app. Most apps have multiple screens. [Expo Router](/router/introduction/) allows you to add new screens to your app by adding additional files to your project. To create a new project with Expo Router library already installed and configured, see [Create a project](/get-started/create-a-project/).

### Debugging

Sometimes things go wrong, and when they do, you'll need to use debugging tools to find and fix errors. See [Debugging](/debugging/runtime-issues/).

### Gestures and animations

To learn more about implementing different types of gestures and animations, we recommend the following documentation:

- [React Native Gesture Handler](https://docs.swmansion.com/react-native-gesture-handler/docs/)
- [React Native Reanimated](https://docs.swmansion.com/react-native-reanimated/docs)

## Join the community

Join our community on <A href="https://chat.expo.dev/" shouldLeakReferrer>Discord</A> to chat with other Expo users or to ask questions.
